import 'package:flutter/material.dart'; // 导入 Flutter 的 Material 组件库
import 'package:fluttertoast/fluttertoast.dart'; // 导入 fluttertoast 插件

/// Toast 工具类，封装了常用的 Toast 显示功能
class ToastUtils {
  /// 显示普通 Toast 消息
  /// [msg]：要显示的消息内容
  static void showToast(String msg) {
    // 调用 Fluttertoast 的 showToast 方法显示 Toast
    Fluttertoast.showToast(
      // msg：Toast 显示的消息内容
      msg: msg,
      // toastLength：Toast 显示的时长，Toast.LENGTH_SHORT 表示短时间显示
      toastLength: Toast.LENGTH_SHORT,
      // gravity：Toast 显示的位置，ToastGravity.BOTTOM 表示在屏幕底部显示
      gravity: ToastGravity.BOTTOM,
      // timeInSecForIosWeb：在 iOS 和 Web 平台上 Toast 显示的时间（秒）
      timeInSecForIosWeb: 1,
      // backgroundColor：Toast 的背景颜色，这里设置为半透明黑色
      backgroundColor: Colors.black54,
      // textColor：Toast 文本的颜色，这里设置为白色
      textColor: Colors.white,
      // fontSize：Toast 文本的字体大小，这里设置为 16.0
      fontSize: 16.0,
    );
  }

  /// 显示自定义样式 Toast 消息
  /// [msg]：要显示的消息内容
  static void showCustomToast(String msg) {
    // 调用 Fluttertoast 的 showToast 方法显示 Toast
    Fluttertoast.showToast(
      // msg：Toast 显示的消息内容
      msg: msg,
      // toastLength：Toast 显示的时长，Toast.LENGTH_LONG 表示长时间显示
      toastLength: Toast.LENGTH_LONG,
      // gravity：Toast 显示的位置，ToastGravity.CENTER 表示在屏幕中央显示
      gravity: ToastGravity.CENTER,
      // timeInSecForIosWeb：在 iOS 和 Web 平台上 Toast 显示的时间（秒）
      timeInSecForIosWeb: 2,
      // backgroundColor：Toast 的背景颜色，这里设置为蓝色
      backgroundColor: Colors.blue,
      // textColor：Toast 文本的颜色，这里设置为白色
      textColor: Colors.white,
      // fontSize：Toast 文本的字体大小，这里设置为 18.0
      fontSize: 18.0,
    );
  }

  /// 显示错误 Toast 消息
  /// [msg]：要显示的消息内容
  static void showErrorToast(String msg) {
    // 调用 Fluttertoast 的 showToast 方法显示 Toast
    Fluttertoast.showToast(
      // msg：Toast 显示的消息内容
      msg: msg,
      // toastLength：Toast 显示的时长，Toast.LENGTH_SHORT 表示短时间显示
      toastLength: Toast.LENGTH_SHORT,
      // gravity：Toast 显示的位置，ToastGravity.BOTTOM 表示在屏幕底部显示
      gravity: ToastGravity.BOTTOM,
      // timeInSecForIosWeb：在 iOS 和 Web 平台上 Toast 显示的时间（秒）
      timeInSecForIosWeb: 1,
      // backgroundColor：Toast 的背景颜色，这里设置为红色
      backgroundColor: Colors.red,
      // textColor：Toast 文本的颜色，这里设置为白色
      textColor: Colors.white,
      // fontSize：Toast 文本的字体大小，这里设置为 16.0
      fontSize: 16.0,
    );
  }

  /// 取消所有正在显示的 Toast 消息
  static void cancelToast() {
    // 调用 Fluttertoast 的 cancel 方法取消所有正在显示的 Toast
    Fluttertoast.cancel();
  }
}